/// <reference path="jquery.js"/>
/*
* jpagebar
* version: 1.0.0 (01/12/2009)
* @ jQuery v1.3.*
*
* 
* usage as:
*     $.fn.jpagebar({ 
*				//pagebar 对象div
*               renderTo: $("#pagebarDiv2"),               
*               //总页码
*				totalpage: 10,
*				//当前页码
*				currentPage: 1,
* 				//是否显示简单形式,简单形式：“首页、上一页、下一页、尾页”
*				simple: false,
*				//分页条样式
*				pagebarCssName: 'pagebar',	
*				//页码样式
*				pageNumberCssName:'page_number',
*				//首页、上一页、下一页、尾页样式
*				pageNameCssName:'pageName',
*				//选中首页、上一页或下一页、尾页样式
*				currentPageNameCssName:'current_pageName',
*				//当前选中页码样式
*				currentPageNumberCssName:'current_page_number',
*				//显示总页码样式
*				totalpageNumberCssName:'totalpage_number',	
*				//点击页码action
*				onClickPage : function(pageIndex){
*								//重新定义jpagebar的显示
*								$.fn.setCurrentPage(this,pageIndex);
*								//用户其他操作在这里
*								//...
*							}
*	});     
* Copyright 2009 LYM [ lym6520@qq.com ] 
*/
(function($) {
    $.extend($.fn, {        
        jpagebar: function(setting) {
            var pb = $.extend({
                //pagebar 对象div
                renderTo: $(document.body),               
                //总页码
				totalpage: 0,
				//当前页码
				currentPage: 0,
				//是否显示简单形式,简单形式：“首页、上一页、下一页、尾页”
				simple: false,
				//分页条样式
				pagebarCssName: 'pagebar',	
				//页码样式
				pageNumberCssName:'page_number',	
				//首页、上一页、下一页、尾页样式
				pageNameCssName:'page_name',
				//选中首页、上一页或下一页、尾页样式
				currentPageNameCssName:'current_page_name',
				//当前选中页码样式
				currentPageNumberCssName:'current_page_number',
				//显示总页码样式
				totalpageNumberCssName:'totalpage_number',	
				//点击页码action
				onClickPage : function(pageIndex){
								}
            }, setting);
			
				
			pb.resetPagebar = function(){	
				var _this = this;
				_this.renderTo = (typeof _this.renderTo == 'string' ? $(_this.renderTo) : _this.renderTo);

				/* ---------->
				html :
				<div> ---->pagebar
					<a>首页</a>
					<a>上一页</a>
					<a>&nbsp;</a>...    ----> 显示页码
					<a>下一页</a>
					<a>尾页</a>
					---->显示信息      
					<a class="current_page">currentpage</a>  ----> 显示当前页码
					<a>/</a> 
					<a class="total_page">totalpage</a>		----> 显示总页码
					       
				</div>
				<-----------*/
				var pagebar = _this.renderTo;
				//pagebar.attr('class',_this.pagebarCssName);
				pagebar.addClass(_this.pagebarCssName);

				//清空分页导航条   
				pagebar.empty();

				if(totalpage = 0){				
					return ;
				}
				// 分页   
				var front_block = parseInt(_this.currentPage) - 5;// 当前页码前面一截   
				var back_block = parseInt(_this.currentPage) + 5;// 当前页码后面一截   
				//处理数字页码
				if(!_this.simple){
					//处理首页、上一页
					if(_this.currentPage == 1 ){
						//当前页为第一页
						$('<a>首 页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
						$('<a>上一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
				
					}else{
						//当前页大于第一页
						$('<a href="#pageno=1">首 页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										  
							_this.onClickPage(1,event);
						}).appendTo(pagebar);
						$('<a href="#pageno='+(_this.currentPage-1)+'">上一页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										 
							_this.onClickPage(_this.currentPage-1,event);
						}).appendTo(pagebar);
					}
					if(_this.totalpage == 1){
						//共1页
						$('<a href="#pageno=1">1</a> ').attr('class',_this.pageNumberCssName + ' ' +_this.currentPageNumberCssName).bind("click", function(event){										  
							_this.onClickPage(1,event);
						}).appendTo(_this.renderTo);
					}else{
						//有多页
						var tempBack_block = _this.totalpage;   
						var tempFront_block = 1;   
						if (back_block < _this.totalpage)   
							tempBack_block = back_block;   
						if (front_block > 1)   
							tempFront_block = front_block;  
						
						if(front_block<=0)
							tempBack_block=Math.min(Math.abs(front_block)+back_block+1,_this.totalpage)
						else if(back_block>_this.totalpage){
							tempFront_block=Math.max(front_block-Math.abs(_this.totalpage-back_block),1)
						}
						
						for (var i = tempFront_block; i <= tempBack_block; i++) {  					
							if (_this.currentPage == i) { 	
								//当前页
								$('<a>'+i+'</a> ').attr('class',_this.pageNumberCssName + ' ' + _this.currentPageNumberCssName).appendTo(pagebar);
							} else {   
								 $('<a href="#pageno='+i+'">'+i+'</a> ').attr('class',_this.pageNumberCssName).bind("click", function(event){										
										_this.onClickPage(this.innerHTML,event);
									}).appendTo(pagebar);
							}   
						} 			
					}
					// 下一页, 尾页  处理
					if (_this.currentPage == _this.totalpage) {  
						//当前页为最后一页
						$('<a>下一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
						$('<a>尾 页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
					} else {   
						$('<a href="#pageno='+(parseInt(_this.currentPage)+1)+'">下一页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										  
							_this.onClickPage(parseInt(_this.currentPage)+1,event);
						}).appendTo(pagebar);
						$('<a href="#pageno='+_this.totalpage+'">尾 页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										  
							_this.onClickPage(_this.totalpage,event);
						}).appendTo(pagebar);  
					} 
					// 红色字体显示当前页   
					$('<a>'+_this.currentPage+'</a> ').attr('class',_this.currentPageNumberCssName).appendTo(pagebar); 
					$('<a>/</a>').appendTo(pagebar); 
					$('<a>'+_this.totalpage+'</a> ').attr('class',_this.totalpageNumberCssName).appendTo(pagebar);  
				}else{
					//	上一页
					if(_this.currentPage == 1 ){
						//	当前页为第一页
						$('<a>上一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
				
					}else{
						//	当前页大于第一页
						$('<a href="#pageno='+(_this.currentPage-1)+'">上一页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										 
							_this.onClickPage(_this.currentPage-1,event);
						}).appendTo(pagebar);
					}
					 //	处理下一页
					if (_this.currentPage == _this.totalpage) {  
						//	当前页为最后一页
						$('<a>下一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName).appendTo(pagebar);
					} else {   
						$('<a href="#pageno='+(parseInt(_this.currentPage)+1)+'">下一页</a> ').attr('class',_this.pageNameCssName).bind("click", function(event){										  
							_this.onClickPage(parseInt(_this.currentPage)+1,event);
						}).appendTo(pagebar);
					}  
				}
			}
			pb.resetPagebar();
        },
		setCurrentPage:function(_this,currentPage){			
			_this.currentPage = currentPage;
			_this.resetPagebar(_this);
		}
       
    });
})(jQuery);